﻿using System;
using System.Drawing;
using System.IO;

namespace WindowsFormsApp1
{
    public class Plane 
    {
        public int X;
        public int Y;
        public int DirectionX = 0; // 左右移动方向
        public int DirectionY = 1;  // 上下移动
        public int Life = 3;        // 生命值
        public int Speed = 3;           // 飞机移动速度（默认速度）
        public bool IsStopped = false;  // 是否处于停止状态
        private Image planeImage; // 用于存储飞机图片

        public Plane(int x, int y)
        {
            X = x;
            Y = y;
            planeImage = Image.FromFile("gif\\plane.png");

        }

        public void Move()
        {
            if (!IsStopped) // 如果飞机未停止
            {
                X += DirectionX * Speed;
                Y += DirectionY * Speed;
            }

            // 限制飞机不能超出画布边界（假设画布宽高为 480）
            X = Math.Max(0, Math.Min(X, 480));
            Y = Math.Max(0, Math.Min(Y, 480));
        }

        public void Draw(Graphics g)
        {
            // 使用 DrawImage 方法绘制图片
            g.DrawImage(planeImage, X, Y,60,60); 
            Move();
        }

        public bool KeyPress(char c)
        {
            if (c == 'f') // F键：加速
            {
                Speed = 10; // 将移动速度设置为加速状态
                IsStopped = false; // 如果之前停止，则解除停止状态
            }
            else if (c == 'e') // E键：停止移动
            {
                IsStopped = true; // 停止状态为true
                DirectionX = 0;   // 重置方向
                DirectionY = 0;
            }
            else if (!IsStopped) // 如果飞机未停止时处理W/A/S/D
            {
                if (c == 'w') { DirectionY = -1; DirectionX = 0; } // 向上
                if (c == 's') { DirectionY = 1; DirectionX = 0; }  // 向下
                if (c == 'a') { DirectionX = -1; DirectionY = 0; } // 向左
                if (c == 'd') { DirectionX = 1; DirectionY = 0; }  // 向右
                Speed = 3; // 如果是WASD，速度恢复正常
            }

            return true;
        }

        public Rectangle GetRectangle()
        {
            // 返回飞机的矩形区域，用于碰撞检测
            return new Rectangle(X, Y,60, 60); // 根据图片大小调整矩形大小
        }
    }
}
